草庐IT

python shuffle算法性能

全部标签

java - Tic Tac Toe 的 Minimax 算法中的错误

我目前正在尝试自学Minimax算法,并尝试在井字游戏中用Java实现它。但是我的算法中有一个错误,我无法弄清楚是什么导致了它。下面是完整的源代码(对不起,文字墙!):publicclassTicTacToe{privatestaticbooleangameEnded=false;privatestaticbooleanplayer=true;privatestaticScannerin=newScanner(System.in);privatestaticBoardboard=newBoard();publicstaticvoidmain(String[]args){System.o

java - 使用 Chudnovsky 算法计算圆周率时出错 - Java

我一直在尝试编写一个简单的程序来使用Chudnovsky算法计算圆周率,但是我总是得到错误的值输出。我写的最新代码如下并输出:9.642715619298075837448823278218780086541162343253084414940204168864066834806498471622628399332216456e11谁能告诉我哪里做错了。正如PeterdeRivaz指出的那样,我正在丢弃b的值,固定输出现在是:-1.76779979383639157654764981441635890608880847407921749358841620214761790018058‌

java - 使用 jbcrypt 时性能可变且性能下降

我正在使用jbcrypt对项目中的密码进行哈希处理。在我使用的硬件上验证密码时,性能约为500毫秒(log_rounds设置为12)。然而,在正常使用一段时间后,性能时间突然下降到惊人的15秒。下降非常突然,没有累积,并且在过程重新启动之前保持不变。分析显示额外的时间用在了key(..)方法中。来源:http://jbcrypt.googlecode.com/svn/tags/jbcrypt-0.3m/src/main/java/org/mindrot/jbcrypt/BCrypt.java该方法仅使用xor、and、shift等基本函数计算哈希,没有对象分配、外部资源使用、随机数生成

java - 匹配算法

我有一张铅笔list和一张橡皮list。目的是检查是否所有的橡皮都可以放在铅笔上。橡皮擦可能适合多支不同的铅笔。铅笔最多可以有1个橡皮擦。如果我只是循环遍历所有橡皮并将它们放在铅笔上,我最终会得到适合所有未占用铅笔的橡皮,即使有一种解决方案可以将所有橡皮都放在铅笔上。我可以使用什么算法来找出适合铅笔上所有橡皮的组合?publicclassEraser(){publicbooleanmatches(Pencilp){//unimportant}}publicclassPencil(){}我的尝试publicbooleandoMatch(Listerasers,Listpencils){f

java - 使用 JIT 编译器的 Collections.emptyList 和空 ArrayList 的性能

使用Collections.emptyList()或空的ArrayList之间是否存在性能差异,尤其是在使用JIT编译器时?我可以想象-例如-JIT编译器不会执行内联或静态方法调用,因为执行的方法取决于类型。编辑我知道Collections.emptyList()返回一个不可变列表,而ArrayList是可变对象。我的意思是,如果我将一个或另一个作为参数传递给方法并且该方法不修改列表,是否会限制JIT编译器优化该方法的可能性?一个简单的例子(只是为了阐明我的意思):intsum(Listlist){intsum=0;for(inti=0;i如果我只使用ArrayList调用此方法,JI

java - 这是什么迷宫求解算法?

我想弄清楚这个算法是A*(A星)算法还是其他什么,但我仍然很困惑。Stackstack=newStack();stack.push(maze.start());stack.peek().mark(SOLUTION_MARK);while(!stack.peek().hasMark(Cell.END)){Cellcurrent=stack.peek();ArrayListdirs=current.neighbors();booleanfound=false;for(Cellnext:dirs){if(next.hasMark(ERROR_MARK)||next.hasMark(SOLUT

java - AWS Lambda 上基于 GPU 的算法

我有一个执行一些数学运算的函数,需要一个16gb的GPU系统,但这个函数不会总是被触发,其余时间我的系统不会被使用。我开始了解AWSLambda。我可以在Lambda上运行基于GPU的算法吗?这样每当我需要GPU时,我都会将系统放在云端。我需要一些关于它的描述。 最佳答案 您无法为AWSLambda函数指定运行时环境,所以不,您不能要求存在GPU(事实上,AWS选择放入其Lambda池中的物理机几乎肯定不会有一个)。最好的办法是在配置为使用p型实例的计算集群上将需要GPU的函数作为批处理作业运行。导游here可能会有帮助。

java - Stream 中 "filter then map"和 "map then filter"的性能是否不同?

我想知道什么更快:按字段过滤自定义对象,然后按其字段映射,反之亦然(先映射,然后过滤)。最后,我通常想将映射的字段收集到一些Collection中。比如最简单的Person类:publicclassPerson{Stringuuid;Stringname;StringsecondName;}现在让我们有一个Listpersons.Listfiltered1=persons.stream().filter(p->"NEED_TOY".equals(p.getName())).map(Person::getName).collect(Collectors.toList());//or?Li

java - Protocol Buffers 中 getSerializedSize() 的性能损失

在使用writeTo(OutputStream)序列化消息之前,在GPB消息上调用getSerializedSize()是否会降低性能?在将消息写入输出流之前,我需要知道消息的大小。我在Java上使用GPB。 最佳答案 没有性能损失。来自thisthread的第二条消息在Protobuf邮件列表上:YoucancallgetSerializedSize()tofindoutthemessagesizeaheadoftime.Notethatcallingthisdoesn'tactuallywasteanytimesincether

Java:高性能消息传递(单一生产者/单一消费者)

我最初问过这个问题here,但我意识到我的问题不是关于while-true循环。我想知道的是,在Java中进行高性能异步消息传递的正确方法是什么?我正在尝试做什么......我有大约10,000个消费者,每个消费者都从他们的私有(private)队列中消费消息。我有一个线程一条一条地生成消息并将它们放入正确的消费者队列中。每个消费者无限循环,检查消息是否出现在其队列中并处理它。我相信这个术语是“单一生产者/单一消费者”,因为只有一个生产者,每个消费者只在他们的私有(private)队列上工作(多个消费者永远不会从同一个队列中读取数据)。Consumer.java内部:@Override